package cn.yuanqiao.manage.domain;

import cn.yuanqiao.common.annotation.Excel;
import cn.yuanqiao.common.annotation.IdAnnotation;
import cn.yuanqiao.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * 基础数据对象 yqfields
 * 
 * @author yuanqiao
 * @date 2023-06-08
 */
public class YqFields extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @IdAnnotation
    @JsonFormat(shape = JsonFormat.Shape.STRING)//转化成string传到前端
    private Long id;

    private String ids;
    /** 字段的中文名 */
    @Excel(name = "字段中文名")
    @NotBlank(message = "字段中文名不能为空")
    @Size(min = 0,max = 32,message = "字段中文名长度不能超过16个汉字")
    private String fieldCaption;

    /** 字段名称 */
    @Excel(name = "字段名称")
    @NotBlank(message = "字段名称不能为空")
    @Size(min = 0,max = 32,message = "字段名称长度不能超过16个汉字")
    private String fieldName;

    /** 字段类型 1：整型 2：字符型 3：日期 4：浮点 5：文本 6：图像 */
    @Excel(name = "字段类型 1：整型 2：字符型 3：日期 4：浮点 5：文本 6：图像 7：长整型")
    @NotBlank(message = "字段类型不能为空")
    private String fieldType;

    /** 字段长度 */
    @Excel(name = "字段长度")
    @NotBlank(message = "字段长度不能为空")
    @Size(min = 0,max = 40,message = "字段长度不能超过40位")
    private String fieldLength;

    /** 是否公共字段 0：否  1：是 */
    @Excel(name = "是否公共字段 0：否  1：是")
    @NotBlank(message = "是否公共字段不能为空")
    private String isCommon;

    /** 状态 0：未启用  1：启用 */
    @Excel(name = "状态 0：未启用  1：启用")
    @NotBlank(message = "状态不能为空")
    private String state;

    /** 层次 0：文件层 1：案卷层 2：电子文件层 3：项目层*/
    //@Excel(name = "层次 0：文件层 1：案卷层 2：电子文件层 3：项目层")
    private String type;

    /** 所属表的id */
    //@Excel(name = "所属表的id")
    private String ftableId;

    /** 查询模式0：不参加查询 1：精确查询2：模糊查询  3：左匹配查询4：区间查询   5：列表查询6：单选对话框 7：多选对话框 */
    //@Excel(name = "查询模式0：不参加查询 1：精确查询2：模糊查询  3：左匹配查询4：区间查询   5：列表查询6：单选对话框 7：多选对话框")
    private String queryMode;

    /** 列表显示方式 0：不显示 1以上：按顺序显示 */
    //@Excel(name = "列表显示方式 0：不显示 1以上：按顺序显示")
    private String listMode;

    /** 缺省值 */
    //@Excel(name = "缺省值")
    private String defaultVal;

    /** 自定义属性值 */
    //@Excel(name = "自定义属性值")
    private String attrId;

    /** 自定义属性文本 */
    //@Excel(name = "自定义属性文本")
    private String attrDic;

    /** 是否主键 0：非主键 1：主键 */
    @Excel(name = "是否主键 0：非主键 1：主键")
    @NotBlank(message = "是否主键不能为空")
    private String bepk;

    /** 是否允许为空 false:不能为空  true：可以为空 */
    @Excel(name = "是否允许为空 false:不能为空  true：可以为空")
    @NotBlank(message = "是否允许为空不能为空")
    private String nullable;

    /** 说明 */
    //@Excel(name = "说明")
    private String description;

    /** 是否展示 0：不展示 1：展示 */
    @Excel(name = "是否展示 0：不展示 1：展示")
    @NotBlank(message = "是否展示不能为空")
    private String showModel;

    /** 展示类型 1：整数 2：浮点 3：日期 4：文本 5：下拉 6：图像 7：部门（单选）8：人员（单选） 9：文本域 */
    @Excel(name = "展示类型 1：整数 2：浮点 3：日期 4：文本 5：下拉 6：图像 7：部门(单选) 8：人员(单选) 9：文本域")
    @NotBlank(message = "展示类型不能为空")
    private String showType;

    /** 宽度 */
    @Excel(name = "宽度")
    @Size(min = 0,max = 40,message = "列宽长度不能超过40位")
    private String thWidth;

    /** 对齐方式 */
    @Excel(name = "对齐方式 left:左对齐 center:居中 right:右对齐")
    private String thAlign;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime2;

    public Date getCreateTime2() {
        return createTime2;
    }

    public void setCreateTime2(Date createTime2) {
        this.createTime2 = createTime2;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getIds() {
        return ids;
    }

    public void setIds(String ids) {
        this.ids = ids;
    }

    public String getFieldCaption() {
        return fieldCaption;
    }

    public void setFieldCaption(String fieldCaption) {
        this.fieldCaption = fieldCaption;
    }

    public String getFieldName() {
        return fieldName;
    }

    public void setFieldName(String fieldName) {
        this.fieldName = fieldName;
    }

    public String getFieldType() {
        return fieldType;
    }

    public void setFieldType(String fieldType) {
        this.fieldType = fieldType;
    }

    public String getFieldLength() {
        return fieldLength;
    }

    public void setFieldLength(String fieldLength) {
        this.fieldLength = fieldLength;
    }

    public String getIsCommon() {
        return isCommon;
    }

    public void setIsCommon(String isCommon) {
        this.isCommon = isCommon;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getFtableId() {
        return ftableId;
    }

    public void setFtableId(String ftableId) {
        this.ftableId = ftableId;
    }

    public String getQueryMode() {
        return queryMode;
    }

    public void setQueryMode(String queryMode) {
        this.queryMode = queryMode;
    }

    public String getListMode() {
        return listMode;
    }

    public void setListMode(String listMode) {
        this.listMode = listMode;
    }

    public String getDefaultVal() {
        return defaultVal;
    }

    public void setDefaultVal(String defaultVal) {
        this.defaultVal = defaultVal;
    }

    public String getAttrId() {
        return attrId;
    }

    public void setAttrId(String attrId) {
        this.attrId = attrId;
    }

    public String getAttrDic() {
        return attrDic;
    }

    public void setAttrDic(String attrDic) {
        this.attrDic = attrDic;
    }

    public String getBepk() {
        return bepk;
    }

    public void setBepk(String bepk) {
        this.bepk = bepk;
    }

    public String getNullable() {
        return nullable;
    }

    public void setNullable(String nullable) {
        this.nullable = nullable;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getShowModel() {
        return showModel;
    }

    public void setShowModel(String showModel) {
        this.showModel = showModel;
    }

    public String getShowType() {
        return showType;
    }

    public void setShowType(String showType) {
        this.showType = showType;
    }

    public String getThWidth() {
        return thWidth;
    }

    public void setThWidth(String thWidth) {
        this.thWidth = thWidth;
    }

    public String getThAlign() {
        return thAlign;
    }

    public void setThAlign(String thAlign) {
        this.thAlign = thAlign;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("ID", getId())
            .append("fieldCaption", getFieldCaption())
            .append("fieldName", getFieldName())
            .append("fieldType", getFieldType())
            .append("fieldLength", getFieldLength())
            .append("isCommon", getIsCommon())
            .append("STATE", getState())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("TYPE", getType())
            .append("ftableId", getFtableId())
            .append("QUERYMODE", getQueryMode())
            .append("LISTMODE", getListMode())
            .append("DEFAULTVAL", getDefaultVal())
            .append("ATTRID", getAttrId())
            .append("ATTRDIC", getAttrDic())
            .append("BEPK", getBepk())
            .append("NULLABLE", getNullable())
            .append("DESCRIPTION", getDescription())
            .append("SHOWMODEL", getShowModel())
            .append("SHOWTYPE", getShowType())
            .append("thWidth", getThWidth())
            .append("thAlign", getThAlign())
            .toString();
    }
}
